package com.hyt.it.ogt.kq.service.gov.service;

import java.util.List;
import java.util.Optional;

import com.baomidou.mybatisplus.extension.service.IService;
import com.hyt.it.ogt.kq.service.gov.model.dto.arrange.CustomArrangeDTO;
import com.hyt.it.ogt.kq.service.gov.model.entity.CustomArrange;

/**
 * <p>
 * 自定义编排表 服务类
 * </p>
 *
 * @author huangyh
 * @since 2022-05-11
 */
public interface ICustomArrangeService extends IService<CustomArrange> {

    /**
     * 根据考试任务id、考生id删除考生准考证号数据
     * @param taskId 考试任务id
     * @param candidateIdList 考生id
     */
    void deleteCandidateAdmissionNumbers(String taskId, List<String> candidateIdList);

    /**
     * 根据考试任务id获取考生准考证号数据
     * @param taskId 考试任务id
     * @return 考生准考证号数据
     */
    List<CustomArrange> listByTaskId(String taskId);

    /**
     * 根据考试任务id、考生id获取考生准考证号数据
     * @param taskId 考试任务id
     * @param candidateId 考生id
     * @return 考生准考证号数据
     */
    Optional<CustomArrange> getByCandidateId(String taskId, String candidateId);

    /**
     * 根据考生id获取考生准考证号
     * @param candidateId 考生id
     * @return 考生准考证号
     */
    String oneAdmissionNumberByCandidateId(String candidateId);

    /**
     * 根据考试任务id获取1个考生准考证号
     * @param taskId 考试任务id
     * @return 考生准考证号
     */
    Optional<CustomArrange> oneAdmissionNumberByTaskId(String taskId);

    /**
     * 根据考生id获取自定义编排数据
     * @param candidateId 考生id
     * @return 自定义编排数据
     */
    List<CustomArrange> listByCandidateId(String candidateId);

    /**
     * 根据考试任务id获取考生自定义编排数据
     * @param taskId 考试任务id
     * @return 考生自定义编排数据
     */
    List<CustomArrangeDTO> listExistedByTaskId(String taskId);

}
